std::deque

From Cppreference

Jump to: navigation, search
Defined in header <deque>

template<

    class T,
    class Allocator = std::allocator<T>

> class deque;

Double-ended queues (or deques) are similar to vectors, except that they allow fast insertions and deletions at both the beginning and the end of the container.

Deques are commonly implemented as dynamically allocated arrays that can grow at both ends. This guarantees constant time access, amortized constant time insertion and deletion at either end of the deque, and linear time insertion and deletion from the middle of the deque.

Contents

Member types

Member type Definition
value_type T
allocator_type Allocator
size_type Unsigned integral type (usually size_t)
difference_type Signed integer type (usually ptrdiff_t)
reference Allocator::reference (pre-C++0x version)
value_type& (C++0x version)
const_reference Allocator::const_reference (pre-C++0x version)
const value_type& (C++0x version)
pointer T* (pre-C++0x version)
std::allocator_traits<Allocator>::pointer (C++0x version)
const_pointer const T* (pre-C++0x version)
std::allocator_traits<Allocator>::const_pointer (C++0x version)
iterator Random access iterator
const_iterator Constant random access iterator
reverse_iterator ​std::reverse_iterator<iterator>
const_reverse_iterator ​std::reverse_iterator<const_iterator>

Member functions

(constructor)
constructs the deque
(public member function)
(destructor)
destructs the deque
(public member function)
operator=
assigns values to the container
(public member function)
assign
assigns values to the container
(public member function)
get_allocator
returns the associated allocator
(public member function)
Element access
at
access specified element with bounds checking
(public member function)
operator[]
access specified element
(public member function)
front
access the first element
(public member function)
back
access the last element
(public member function)
Iterators
begin
cbegin
returns an iterator to the beginning
(public member function)
end
cend
returns an iterator to the end
(public member function)
rbegin
crbegin
returns a reverse iterator to the beginning
(public member function)
rend
crend
returns a reverse iterator to the end
(public member function)
Capacity
empty
checks whether the container is empty
(public member function)
size
returns the number of elements
(public member function)
max_size
returns the maximum number of elements
(public member function)
shrink_to_fit (C++0x)
reduces memory usage by freeing unused memory
(public member function)
Modifiers
clear
clears the contents
(public member function)
insert
inserts elements
(public member function)
emplace (C++0x)
constructs element in-place
(public member function)
erase
erases elements
(public member function)
push_back
inserts elements to the end
(public member function)
emplace_back (C++0x)
constructs elements in-place at the end
(public member function)
pop_back
removes the last element
(public member function)
push_front
inserts elements to the beginning
(public member function)
emplace_front (C++0x)
constructs elements in-place at the beginning
(public member function)
pop_front
removes the first element
(public member function)
resize
changes the number of elements stored
(public member function)
swap
swaps the contents
(public member function)

Non-member functions

operator==
operator!=
operator<
operator<=
operator>
operator>=
lexicographically compares the values in the container
(function)
std::swap
specializes the std::swap() algorithm
(function)
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
In other languages